package com.kr.weitao.util.rest.condition;

import com.kr.weitao.exception.CommonException;
import com.kr.weitao.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/** 赋值方式 Created by paco on 2017/06/07. */
public enum EVoluationType {
  /*
  1、主键
  2、创建人
  3、创建时间
  4、操作人
  5、操作时间
  6、单据编号
  7、密码
  8、忽略
  9、界面输入
  10、下拉
  11、外键
   */
  pk("1", "主键"),
  creater("2", "创建人"),
  createdatetime("3", "创建时间"),
  operater("4", "操作人"),
  operatedatetime("5", "操作时间"),
  no("6", "单据编号"),
  pwd("7", "密码"),
  ignore("8", "忽略"),
  input("9", "界面输入"),
  select("10", "下拉"),
  foreignkey("11", "外键");

  private static Map<String, EVoluationType> allVoluationType = new HashMap<>();

  static {
    allVoluationType.put("1", pk);
    allVoluationType.put("2", creater);
    allVoluationType.put("3", createdatetime);
    allVoluationType.put("4", operater);
    allVoluationType.put("5", operatedatetime);
    allVoluationType.put("6", no);
    allVoluationType.put("7", pwd);
    allVoluationType.put("8", ignore);
    allVoluationType.put("9", input);
    allVoluationType.put("10", select);
    allVoluationType.put("11", foreignkey);
  }

  private String code;
  private String name;

  EVoluationType(String code, String name) {
    this.code = code;
    this.name = name;
  }

  public static EVoluationType getEVoluationType(String code) {
    EVoluationType evt = null;
    if (StringUtils.isNull(code)) {
      throw new CommonException("-40", "赋值方式不能为空");
    }
    String tempCode = code.replaceAll("^\\s+|\\s+$", "");
    tempCode = code.replaceAll("\\s+", " ");
    if (!allVoluationType.containsKey(tempCode)) {
      throw new CommonException("-40", "赋值方式错误");
    }
    evt = allVoluationType.get(tempCode.toLowerCase());

    return evt;
  }
}
